package com.um2.mauction.entity;

import java.io.Serializable;
import javax.ejb.EJB;
import javax.persistence.*;

import com.um2.mauction.session.remote.CategorieManagerRemote;

@Entity
public class Produit implements Serializable 
{
	private static final long serialVersionUID = 1L;
	private int idProduit;
	private String nomProduit;
	private String descProduit;
	private String photoProduit;
	private String etatProduit;
	private Categorie categorie; // typeProduit
	private Vente vente;

	@EJB
	CategorieManagerRemote catmanager;

	public Produit() {}

	public Produit(String nomProduit, Categorie categorie) 
	{
		this.nomProduit = nomProduit;
		this.categorie = categorie;
		this.nomProduit = null;
		this.photoProduit = null;
		this.descProduit = null;
		this.vente=null;
	}

	public Produit(String nomProduit, Categorie categorie, Vente vente) 
	{
		this.nomProduit = nomProduit;
		this.categorie = categorie;
		this.categorie = null;
		this.vente = vente;
	}

	public Produit(String nomProduit, String photoProduit, String descProduit,
			String etatProduit, Categorie catProduit, Vente v) 
	{
		this.nomProduit = nomProduit;
		this.photoProduit = photoProduit;
		this.descProduit = descProduit;
		this.etatProduit = etatProduit;
		this.categorie = catProduit;
		this.vente = v;
	}
	
	/*
	public Produit(String nomProduit, String photoProduit, String descProduit,
			String etatProduit,String catProduit) {
		this.nomProduit = nomProduit;
		this.photoProduit = photoProduit;
		this.descProduit = descProduit;
		this.etatProduit = etatProduit;
		this.categorie = catmanager.getCategoryByName(catProduit);
		this.vente = null;
	}
	*/
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public int getIdProduit() 
	{
		return this.idProduit;
	}

	public void setIdProduit(int idProduit) 
	{
		this.idProduit = idProduit;
	}

	public String getNomProduit() 
	{
		return this.nomProduit;
	}

	public void setNomProduit(String nomProduit) 
	{
		this.nomProduit = nomProduit;
	}

	// The access methods for cmr fields
	
	@ManyToOne
	@JoinColumn(name = "idCategorie")
	public Categorie getCategorie() 
	{
		return this.categorie;
	}

	public void setCategorie(Categorie categorie) 
	{
		this.categorie = categorie;
	}

	@OneToOne
	public Vente getVente() 
	{
		return this.vente;
	}

	public void setVente(Vente vente)
	{
		this.vente = vente;
	}

	public String getPhotoProduit() 
	{
		return photoProduit;
	}

	public void setPhotoProduit(String photoProduit) 
	{
		this.photoProduit = photoProduit;
	}

	public String getDescProduit() 
	{
		return descProduit;
	}

	public void setDescProduit(String descProduit) 
	{
		this.descProduit = descProduit;
	}

	public String getEtatProduit() 
	{
		return etatProduit;
	}

	public void setEtatProduit(String etatProduit) 
	{
		this.etatProduit = etatProduit;
	}

	public String toString()
	{
		return		"\n idProduit :" 	+ getIdProduit() +
					"\n nomProduit: "	+ getNomProduit() +
					"\n descProduit: "	+ getDescProduit() +
					"\n photoProduit: "+ getPhotoProduit() +
					"\n etatProduit: "	+ getEtatProduit() +
					"\n categorie: "	+ getCategorie();//+
					//"\n vente:"		+ getVente().;
	}
}